﻿using System;
using System.Collections.Generic;
using System.Text;
using XDesigner.ORM;

namespace 刘颜红销售项目管理.Business.DOM
{
    [System.Drawing.ToolboxBitmap( typeof( Class工作单位 ))]
    [ORMType("工作单位表",LogReference =ORMBooleanValue.True )]
    public class Class工作单位
    {
        
        private int _RecordID = 0;
        [ORMKeyField()]
        [ORMNewValueGenerate(ORMNewValueGenerateStyle.Increase)]
        public virtual int RecordID
        {
            get { return _RecordID; }
            set { _RecordID = value; }
        }

        private string _单位名称 = null;
        [ORMSort( ORMSortStyle.Ascent )]
        public virtual string 单位名称
        {
            get { return _单位名称; }
            set { _单位名称 = value; }
        }

        private string _单位地址 = null;

        public virtual string 单位地址
        {
            get { return _单位地址; }
            set { _单位地址 = value; }
        }

        private string _负责人 = null;

        public virtual string 负责人
        {
            get { return _负责人; }
            set { _负责人 = value; }
        }
        private string _备注 = null;

        public virtual string 备注
        {
            get
            {
                return _备注; 
            }
            set
            {
                _备注 = value; 
            }
        }

        private string _网址 = null;

        public virtual string 网址
        {
            get { return _网址; }
            set { _网址 = value; }
        }

        private string _经营范围 = null;

        public virtual string 经营范围
        {
            get { return _经营范围; }
            set { _经营范围 = value; }
        }

        private List<Class人员基本信息> _人员列表 = null;
        [ORMRelation(ORMRelationStyle.OneToMany )]
        [ORMDelay()]
        public virtual List<Class人员基本信息> 人员列表
        {
            get
            {
                return _人员列表; 
            }
            set
            {
                _人员列表 = value; 
            }
        }

        //[ORMIgnore()]
        //[System.Xml.Serialization.XmlIgnore()]
        //public ORMBindingSource 人员列表2
        //{
        //    get
        //    {
        //        return ORMBindingSource.CreatePackage(this , typeof( Class人员基本信息 ), this.人员列表);
        //    }
        //    set
        //    { }
        //}

        private List<Class项目基本信息> _项目列表 = null;
        [ORMRelation(ORMRelationStyle.OneToMany )]
        [ORMDelay()]
        public virtual List<Class项目基本信息> 项目列表
        {
            get
            {
                return _项目列表; 
            }
            set
            {
                _项目列表 = value; 
            }
        }

        

        public override string ToString()
        {
            return this.单位名称;
        }

        private List<Class附属文件> _附件 = null;
        [ORMRelation(ORMRelationStyle.OneToMany )]
        [ORMDelay()]
        public virtual List<Class附属文件> 附件
        {
            get 
            {
                return _附件; 
            }
            set
            {
                _附件 = value; 
            }
        }
    }

    public class Class未分类工作单位 : Class工作单位
    {
        private static Class未分类工作单位 _Instance = new Class未分类工作单位();
        public static Class未分类工作单位 Instance
        {
            get
            {
                return _Instance;
            }
        }

        public Class未分类工作单位()
        {
            this.单位名称 = "未分类";
            this.RecordID = -1;
        }

        public override List<Class人员基本信息> 人员列表
        {
            get
            {
                if (base.人员列表 == null)
                {
                    QueryConditionList conditions = new QueryConditionList();
                    conditions.ContactOperator = "OR";
                    conditions.AddCondition("所属单位ID", "not in", "select RecordID from 工作单位表");
                    conditions.AddCondition("所属单位ID", "is", "null");
                    Array list = MyApplicationFramework.Instance.ORMEngine.ReadInstances(typeof(Class人员基本信息), conditions);
                    base.人员列表 = new List<Class人员基本信息>();
                    foreach (Class人员基本信息 item in list)
                    {
                        item.所属单位 = this;
                        base.人员列表.Add(item);
                    }
                }
                return base.人员列表;
            }
            set
            {
                base.人员列表 = value;
            }
        }
    }//public class Class未分类工作单位 : Class工作单位
}
